package dto

import "context"

type QueryTask struct {
	Namespace string `json:"namespace" binding:"required"`
}

type AddNamespaceDTO struct {
	Name string `json:"name" binding:"required"`
}

type AddTaskDTO struct {
	Name      string `json:"name" binding:"required"`
	Namespace string `json:"namespace" binding:"required"`
	Note      string `json:"note"`
	Edit      bool   `json:"edit"`
	Id        string `json:"id"`
}

type DeleteTaskDTO struct {
	List []string `json:"list" binding:"required"`
}

type TaskInfoDTO struct {
	Id           string     `json:"id" binding:"required"`
	FlowData     string     `json:"flowData" binding:"required"`
	TaskDataList []TaskData `json:"taskDataList"`
}

type TaskData struct {
	Id       string      `json:"id"`
	Title    string      `json:"title"`
	TaskType string      `json:"type"`
	Status   string      `json:"status"`
	Data     interface{} `json:"data"`
}

type TaskTemplateDTO struct {
	Name     string `json:"name" binding:"required"`
	FlowData string `json:"flowData" binding:"required"`
}

type NodeContext struct {
	TaskId    string     `json:"taskId"`
	BatchId   int64      `json:"batchId"`
	TaskData  TaskData   `json:"taskData"`
	DataList  []TaskData `json:"dataList"`
	Workspace string     `json:"workspace"`
	DockerId  string     `json:"dockerId"`
	NodeType  string     `json:"nodeType"`
	StopFlag  bool       `json:"stopFlag"`
	LogFile   string     `json:"logFile"`
	Context   context.Context
	Cancel    context.CancelFunc
}

type FlowStatusData struct {
	TaskId string `json:"taskId"`
	Status bool   `json:"status"`
}

type NodeStatusData struct {
	Id     string `json:"id"`
	Status string `json:"status"`
}

type QueryTaskHisDTO struct {
	PageDTO
	TaskId string `json:"taskId" binding:"required"`
}
